package com.fxwater.redis.controller;

import com.fxwater.redis.domain.ItemInfo;
import com.fxwater.redis.service.IitemService;
import com.fxwater.redis.util.RedisUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

@RestController
@RequestMapping("/redis") //produces = "application/json; charset=UTF-8")
public class RedisController {

    @Autowired
    private RedisTemplate  redisTemplate;

    @Autowired
    private IitemService iitemService ;

            /**
          * 获取所有的数据信息
          * @return
          */
        @RequestMapping("/dataList")
        public List<ItemInfo> selectItemInfoInfoDataList(){
        //从redis中取出某一个key下面的list列表， 0表示从列表的第0个元素开始取，-1表示直取到倒数第一个元素，也就是整个列表的所有元素都取出来。
        List<ItemInfo> list = redisTemplate.opsForList().range("itemServiceMapper", 0, -1);
        if(list.size()==0){//如果缓存中的数据为空的时候进行重新获取数据
       list=iitemService.selectItemInfoInfoDataList();
           }
          return list;
}

            /*
            根据id获取详细信息
             */
           @RequestMapping("/getinfo")
            public ItemInfo getinfo(@RequestParam("id") Integer id){
                return iitemService.getinfo(id);
            }



   // @RequestMapping( "/set")
//    public String setUserName( String name) {
//        System.out.println("接收到set请求");
//        redisTemplate.opsForValue().set("2", name);
//        return "succees";
//    }
//
//    /**
//     * 监测数据信息列表
//     * @param itemInfo
//     * @return
//     */
//    @RequestMapping("/itemInfo/dataList")
//    @ResponseBody
//    public List<ItemInfo>  dataList (String id) {
//        List<ItemInfo> list = iitemService.selectItemInfoInfoDataList(id);
//        System.out.println("list==="+list);
//        return list;
//    }


//    @RequestMapping( "/get")
//    public String getUserName( String key) {
//        System.out.println("接收到get请求");
//        System.out.println("redisTemplate.opsForValue().get(key)==="+redisTemplate.opsForValue().get(key));
//        return  redisTemplate.opsForValue().get(key).toString();
//    }
//
//    @Autowired
//    private RedisUtil redisUtil;
//
//
//    @RequestMapping( "/delete")
//    public Boolean deleteKey(String key) {
//        return redisUtil.deleteKey(key);
//    }
//

}